#include <iostream>
#include <vector>
#include <queue>
using namespace std;
using ll=long long;
int main(){
	
	int n,k;
	cin>>n>>k;
	vector<int> vec(n);
	ll nRet=0;
	priority_queue<int> q;
	
	for(int i=0;i<n;++i){
		
		cin>>vec[i];
		nRet+=vec[i];
		if((vec[i]&1)==0){
			
			q.push(vec[i]);
		}
	}
	while(k-- && q.size()){
		
		int nTop=q.top();
		q.pop();
		nRet-=nTop;
		nTop/=2;
		nRet+=nTop;
		if((nTop&1)==0){
			
			q.push(nTop);
		}	
	}
	cout<<nRet;
	return 0;
}
